package com.ruoyi.framework.web.controller;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.dyun.tool.mybatis.domain.PageDomain;
import com.dyun.tool.mybatis.support.Condition;
import net.dreamlu.mica.common.support.IController;
import net.dreamlu.mica.core.result.R;
import net.dreamlu.mica.core.result.SystemCode;

public abstract class BaseController implements IController {

    /**
     * 请求分页
     *
     * @param pageDomain 分页数据
     * @param <T>        分页数据类型
     * @return 返回信息
     */
    protected <T> IPage<T> startPage(PageDomain pageDomain) {
        return Condition.getPage(pageDomain);
    }

    /**
     * 根据状态返回成功和失败
     *
     * @param status 状态
     * @param <T>    枚举
     * @return 返回信息
     */
    protected <T> R<T> status(boolean status) {
        return status ? success() : fail();
    }

    /**
     * 状态返回失败
     *
     * @param <T> 枚举
     * @return 返回信息
     */
    protected <T> R<T> fail() {
        return R.fail(SystemCode.FAILURE, "操作失败");
    }
}
